package com.shenglaotuan.community.article.service;

import com.shenglaotuan.community.article.entity.Article;
import com.baomidou.mybatisplus.extension.service.IService;
import com.shenglaotuan.community.article.entity.ArticleSimpleVO;
import com.shenglaotuan.community.article.entity.ArticleVO;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author ruidong
 * @since 2020-08-22
 */
public interface ArticleService extends IService<Article> {

    /**
     * 保存文章
     * @param uid 用户id
     * @param article 文章
     * @param tags 标签
     * @param host 服务器域名
     */
    void saveArticle(String uid, Article article, String[] tags, String host);


    /**
     * 计算某用户的文章总数
     * @param uid 用户id
     * @param query 查询参数
     * @return 文章总数
     */
    Integer countTotal(String uid, String query);

    /**
     * 获取文章大概内容列表
     * @param uid 用户id
     * @param page 当前页数
     * @param record 一页的数据条数
     * @param query 查询参数
     * @return 文章大概内容列表
     */
    List<ArticleSimpleVO> listSimple(String uid, Integer page, Integer record, String query);

    /**
     * 根据id获取文章
     * @param id 文章id
     * @param host 服务器地址
     * @return 文章内容
     */
    ArticleVO getArticle(String id, String host);

    /**
     * 下载文章
     * @param response 响应对象
     * @param id 文章id
     * @param host 服务器域名
     */
    void download(HttpServletResponse response, String id, String host);
}
